package org.loujiarong.yugioh.util;

public class GameConstants
{
   public enum Attribute {DARK, LIGHT, FIRE, WATER, EARTH, WIND, DEVINE};
   public enum Type {AQUA, BEAST, BEAST_WARRIOR, DINOSAUR, DIVINE_BEAST, DRAGON,
                     FAIRY, FIEND, FISH, INSECT, MACHINE, PLANT, PSYCHIC, PYRO,
                     REPTILE, ROCK, SEASERPENT, SPELLCASTER, THUNDER, WARRIOR,
                     WINGEDBEAST, ZOMBIA};
   public enum CardPosition {FACE_UP_ATTACK, FACE_DOWN_ATTACK, FACE_UP_DEFENCE, FACE_DOWN_DEFENCE, FACE_DOWN, FACE_UP};

   public enum Phase {DRAW, STANDBY, MAIN1, BATTLE, MAIN2, END};

   public enum EffectType {CONTINUOUS, TRIGGER, IGNITION, QUICK, FLIP};

   public enum Event {DRAW, DRAW_START, DRAW_END, MAIN1_START, MAIN1_END, BATTLE_START, BATTLE_END, 
	   				  ATTACK_DECLARATION, DAMANAGE_START, DAMAGE_CALCULATION, DAMAGE_END,
	   				  ACTIVATE, USE, CHANGE_POS, SENDTO, DISCARD, ADD, REMOVE_FROM_PLAY, TRIBUTE, SET,
                      TRIBUTE_SET, SUMMON, NORMAL_SUMMON, TRIBUTE_SUMMON, FLIP_SUMMON, SPECIAL_SUMMON,
                      FUSION_SUMMON, RITUAL_SUMMON, SYNCHRO_SUMMON, FLIP, DESTROY, DESTROY_BY_BATTLE,
                      DESTROY_BY_EFFECT, POST_DMG_CAL
                      }

   public enum DrawPhase {DECLARATION, PREDRAW_EFFECT, PREDRAW_CHAIN1, PREDRAW_CHAIN2, DRAW_EFFECT,
	   					DRAW_TRIGGER, DRAW_SPEED2, POSTDRAW_SPEED2 
   }
   public enum StandbyPhase {DECLARATION, STANDBY_COST, STANDBY_TRIGGER, STANDBY_UNTIL, STANDBY_SPEED1,
	   STANDBY_SPEED2   
   }
   public enum MainPhase {DECLARATION, NORMAL_SUMMON, FLIP_SUMMON, SPECIAL_SUMMON, CHANGE_POSITION, SET, 
	   ACTIVATE, ACTIVATE_EFFECT, NEGATE_SUMMON, SUMMON_SUCCESSFUL_CONTINUOUS, 
	   SUMMON_SUCCESS_COMPULSORY_TRIGGER_TURN_PLAYER,
	   SUMMON_SUCCESS_COMPULSORY_TRIGGER_NON_TURN_PLAYER, 
	   SUMMON_SUCCESS_OPT_TRIGGER_TURN_PLAYER,
	   SUMMON_SUCCESS_OPT_TRIGGER_NON_TURN_PLAYER,
	   SUMMON_SUCCESS_COMPULSORY_SPEED2_TURN_PLAYER,
	   SUMMON_SUCCESS_COMPULSORY_SPEED2_NON_TURN_PLAYER,
	   SUMMON_SUCCESS_OPT_SPEED2_TURN_PLAYER,
	   SUMMON_SUCCESS_OPT_SPEED2_NON_TURN_PLAYER,
	   SUMMON_FAIL
   }
   public enum BattlePhase {DECLARATION, PREBATTLE_SPEED2, PREBATTLE_CHECK, BATTLE_SPEED2, 
	   BATTLE_DECLARATION_SELECT_NO_CHAIN,
	   BATTLE_DECLARATION_CONTINUOUS,   
	   BATTLE_DECLARATION_SELECT_TARGET,
	   BATTLE_DECLARATION_POST_SELECT,
	   BATTLE_DECLARATION_SELECT_TRIGGER,
	   BATTLE_DECLARATION_COMPULSORY_TRIGGER_TURN_PLAYER,
	   BATTLE_DECLARATION_COMPULSORY_TRIGGER_NON_TURN_PLAYER,
	   BATTLE_DECLARATION_OPT_IGNITION_TRIGGER_TURN_PLAYER,
	   BATTLE_DECLARATION_OPT_TRIGGER_NON_TURN_PLAYER,
	   BATTLE_DECLARATION_SPEED2,
	   BATTLE_STEP_TRIGGER,
	   BATTLE_STEP_SPEED2,
	   DAMAGE_STEP_START,
	   DAMAGE_STEP_REVEAL,
	   DAMAGE_STEP_EFFECT,
	   DAMAGE_CALCULATION,
	   POST_DAMAGE_CAL,
	   POST_DAMAGE_CAL_TRIGGER,
	   BATTLE_RESULT_DAMAGE_TRIGGER,
	   BATTLE_RESULT_BATTLE_FLIP_TRIGGER,
	   BATTLE_RESULT_PRE_GRAVEYARD,
	   BATTLE_RESULT_GRAVEYARD_TRIGGER,
	   DAMAGE_STEP_END,
	   BATTLE_END_TRIGGER,
	   BATTLE_END_EFFECT_NO_CHAIN,
	   BATTLE_END_UNTIL,
	   BATTLE_END_SPEED2
	   
   }
   public enum EndPhase {
	   END_COST, END_TRIGGER, END_EFFECT_NO_CHAIN, END_UNTIL, END_SPEED2, HAND_DISCARD_CHECK, POST_DICARD_CONTINUOUS,
	   DISCARD_TRIGGER, DISCARD_SPEED2, POST_DICARD_TRIGGER, POST_DISCARD_SPEED2   
   }
}
